// Copyright 2010 Alexandre Tristan St-Cyr <tristan.stcyr@gmail.com>

module Java.Class
{
    import System;
    export ClassDefinitions;
    
    ClassDefinitions : 
    {(
        (
			HasFolder &
			{
				Id : Classes;
				
				Signature : (Text where value.Count > 0)?;
				
				IsPublic : Logical;
				
				IsInterface : Logical;
				
				IsAbstract : Logical;

				IsFinal : Logical;
				
				IsSuper : Logical;
				
				IsAnnotation : Logical;
				
				IsEnum : Logical;
				
				IsSynthetic : Logical;
				
				OuterClass : Classes?;
				
				SuperClass : Classes;
				
				PackageName : (Text where value.Count > 0);
			}
		) where 
			identity(Id)
            
    )*};
}